//package com.albedo.java.web.rest.errors;
//
//import com.albedo.java.web.rest.base.BaseResource;
//import org.springframework.dao.ConcurrencyFailureException;
//import org.springframework.http.HttpStatus;
//import org.springframework.security.access.AccessDeniedException;
//import org.springframework.web.bind.MissingServletRequestParameterException;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.web.multipart.support.MissingServletRequestPartException;
//
//import javax.validation.Valid;
//import javax.validation.constraints.NotNull;
//import java.util.HashMap;
//import java.util.Map;
//
//@RestController
//public class ExceptionTranslatorTestController extends BaseResource {
//
//    @GetMapping("/test/concurrency-failure")
//    public void concurrencyFailure() {
//        throw new ConcurrencyFailureException("test concurrency failure");
//    }
//
//    @PostMapping("/test/method-argument")
//    public void methodArgument(@Valid @RequestBody TestDTO testDTO) {
//    }
//
//    @GetMapping("/test/parameterized-error")
//    public void parameterizedError() {
//        throw new CustomParameterizedException("test parameterized error", "param0_value", "param1_value");
//    }
//
//    @GetMapping("/test/parameterized-error2")
//    public void parameterizedError2() {
//        Map<String, Object> params = new HashMap<>();
//        params.put("foo", "foo_value");
//        params.put("bar", "bar_value");
//        throw new CustomParameterizedException("test parameterized error", params);
//    }
//
//    @GetMapping("/test/missing-servlet-request-part")
//    public void missingServletRequestPartException() throws Exception {
//        throw new MissingServletRequestPartException("missing Servlet request part");
//    }
//
//    @GetMapping("/test/missing-servlet-request-parameter")
//    public void missingServletRequestParameterException() throws Exception {
//        throw new MissingServletRequestParameterException("missing Servlet request parameter", "parameter type");
//    }
//
//    @GetMapping("/test/access-denied")
//    public void accessdenied() {
//        throw new AccessDeniedException("test access denied!");
//    }
//
////    @GetMapping("/test/response-status")
////    public void exceptionWithReponseStatus() {
////        throw new TestResponseStatusException();
////    }
//
//    @GetMapping("/test/internal-server-error")
//    public void internalServerError() {
//        throw new RuntimeException();
//    }
//
//    public static class TestDTO {
//
//        @NotNull
//        private String test;
//
//        public String getTest() {
//            return test;
//        }
//
//        public void setTest(String test) {
//            this.test = test;
//        }
//    }
//
////    @ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "test response status")
////    @SuppressWarnings("serial")
////    public static class TestResponseStatusException extends RuntimeException {
////    }
//
//}
